package com.miplus.ccrm.report.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 
 * @TableName report_call_hist
 */
@TableName(value ="report_call_hist")
@Data
public class ReportCallHist implements Serializable {
    /**
     * 自增ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 
     */
    private String partitionkey;

    /**
     * 
     */
    private Date startdatetime;

    /**
     * 
     */
    private String callid;

    /**
     * 
     */
    private String gcallid;

    /**
     * 
     */
    private Date enddatetime;

    /**
     * 
     */
    private String calltype;

    /**
     * 
     */
    private String callresult;

    /**
     * 
     */
    private String vdn;

    /**
     * 
     */
    private String vdnid;

    /**
     * 
     */
    private String inacdgrpnum;

    /**
     * 
     */
    private String inacdgrpid;

    /**
     * 
     */
    private String outacdgrpnum;

    /**
     * 
     */
    private String outacdgrpid;

    /**
     * 
     */
    private String opeid;

    /**
     * 
     */
    private String opedevnum;

    /**
     * 
     */
    private String opename;

    /**
     * 
     */
    private BigDecimal waitspan;

    /**
     * 
     */
    private BigDecimal talkspan;

    /**
     * 
     */
    private String ani;

    /**
     * 
     */
    private String dnis;

    /**
     * 
     */
    private String dnisname;

    /**
     * 
     */
    private String dialnumber;

    /**
     * 
     */
    private String monitordevnum;

    /**
     * 
     */
    private String isqueue;

    /**
     * 
     */
    private String isope;

    /**
     * 
     */
    private String primary;

    /**
     * 
     */
    private String gwnumber;

    /**
     * 
     */
    private String cmconvnumber;

    /**
     * 
     */
    private BigDecimal opeanswerspan;

    /**
     * 
     */
    private Date acdgrpdisttime;

    /**
     * 
     */
    private Integer holdtimes;

    /**
     * 
     */
    private BigDecimal holdspansum;

    /**
     * 
     */
    private String opeacdgrpnum;

    /**
     * 
     */
    private String opeacdgrpid;

    /**
     * 
     */
    private Integer helpcalltimes;

    /**
     * 
     */
    private Integer ehelpcalltimes;

    /**
     * 
     */
    private String callmanagenumber;

    /**
     * 
     */
    private String mergeflg;

    /**
     * 
     */
    private String cause;

    /**
     * 
     */
    private String devtype;

    /**
     * 
     */
    private String localdevnum;

    /**
     * 外呼扩展结果
     */
    private String extcause;

    /**
     * 主呼叫ID
     */
    private String maincmnumber;

    /**
     * 转接时另一方
     */
    private String partdevnum;

    /**
     * 转接时间
     */
    private Date transferdatetime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ReportCallHist other = (ReportCallHist) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getPartitionkey() == null ? other.getPartitionkey() == null : this.getPartitionkey().equals(other.getPartitionkey()))
            && (this.getStartdatetime() == null ? other.getStartdatetime() == null : this.getStartdatetime().equals(other.getStartdatetime()))
            && (this.getCallid() == null ? other.getCallid() == null : this.getCallid().equals(other.getCallid()))
            && (this.getGcallid() == null ? other.getGcallid() == null : this.getGcallid().equals(other.getGcallid()))
            && (this.getEnddatetime() == null ? other.getEnddatetime() == null : this.getEnddatetime().equals(other.getEnddatetime()))
            && (this.getCalltype() == null ? other.getCalltype() == null : this.getCalltype().equals(other.getCalltype()))
            && (this.getCallresult() == null ? other.getCallresult() == null : this.getCallresult().equals(other.getCallresult()))
            && (this.getVdn() == null ? other.getVdn() == null : this.getVdn().equals(other.getVdn()))
            && (this.getVdnid() == null ? other.getVdnid() == null : this.getVdnid().equals(other.getVdnid()))
            && (this.getInacdgrpnum() == null ? other.getInacdgrpnum() == null : this.getInacdgrpnum().equals(other.getInacdgrpnum()))
            && (this.getInacdgrpid() == null ? other.getInacdgrpid() == null : this.getInacdgrpid().equals(other.getInacdgrpid()))
            && (this.getOutacdgrpnum() == null ? other.getOutacdgrpnum() == null : this.getOutacdgrpnum().equals(other.getOutacdgrpnum()))
            && (this.getOutacdgrpid() == null ? other.getOutacdgrpid() == null : this.getOutacdgrpid().equals(other.getOutacdgrpid()))
            && (this.getOpeid() == null ? other.getOpeid() == null : this.getOpeid().equals(other.getOpeid()))
            && (this.getOpedevnum() == null ? other.getOpedevnum() == null : this.getOpedevnum().equals(other.getOpedevnum()))
            && (this.getOpename() == null ? other.getOpename() == null : this.getOpename().equals(other.getOpename()))
            && (this.getWaitspan() == null ? other.getWaitspan() == null : this.getWaitspan().equals(other.getWaitspan()))
            && (this.getTalkspan() == null ? other.getTalkspan() == null : this.getTalkspan().equals(other.getTalkspan()))
            && (this.getAni() == null ? other.getAni() == null : this.getAni().equals(other.getAni()))
            && (this.getDnis() == null ? other.getDnis() == null : this.getDnis().equals(other.getDnis()))
            && (this.getDnisname() == null ? other.getDnisname() == null : this.getDnisname().equals(other.getDnisname()))
            && (this.getDialnumber() == null ? other.getDialnumber() == null : this.getDialnumber().equals(other.getDialnumber()))
            && (this.getMonitordevnum() == null ? other.getMonitordevnum() == null : this.getMonitordevnum().equals(other.getMonitordevnum()))
            && (this.getIsqueue() == null ? other.getIsqueue() == null : this.getIsqueue().equals(other.getIsqueue()))
            && (this.getIsope() == null ? other.getIsope() == null : this.getIsope().equals(other.getIsope()))
            && (this.getPrimary() == null ? other.getPrimary() == null : this.getPrimary().equals(other.getPrimary()))
            && (this.getGwnumber() == null ? other.getGwnumber() == null : this.getGwnumber().equals(other.getGwnumber()))
            && (this.getCmconvnumber() == null ? other.getCmconvnumber() == null : this.getCmconvnumber().equals(other.getCmconvnumber()))
            && (this.getOpeanswerspan() == null ? other.getOpeanswerspan() == null : this.getOpeanswerspan().equals(other.getOpeanswerspan()))
            && (this.getAcdgrpdisttime() == null ? other.getAcdgrpdisttime() == null : this.getAcdgrpdisttime().equals(other.getAcdgrpdisttime()))
            && (this.getHoldtimes() == null ? other.getHoldtimes() == null : this.getHoldtimes().equals(other.getHoldtimes()))
            && (this.getHoldspansum() == null ? other.getHoldspansum() == null : this.getHoldspansum().equals(other.getHoldspansum()))
            && (this.getOpeacdgrpnum() == null ? other.getOpeacdgrpnum() == null : this.getOpeacdgrpnum().equals(other.getOpeacdgrpnum()))
            && (this.getOpeacdgrpid() == null ? other.getOpeacdgrpid() == null : this.getOpeacdgrpid().equals(other.getOpeacdgrpid()))
            && (this.getHelpcalltimes() == null ? other.getHelpcalltimes() == null : this.getHelpcalltimes().equals(other.getHelpcalltimes()))
            && (this.getEhelpcalltimes() == null ? other.getEhelpcalltimes() == null : this.getEhelpcalltimes().equals(other.getEhelpcalltimes()))
            && (this.getCallmanagenumber() == null ? other.getCallmanagenumber() == null : this.getCallmanagenumber().equals(other.getCallmanagenumber()))
            && (this.getMergeflg() == null ? other.getMergeflg() == null : this.getMergeflg().equals(other.getMergeflg()))
            && (this.getCause() == null ? other.getCause() == null : this.getCause().equals(other.getCause()))
            && (this.getDevtype() == null ? other.getDevtype() == null : this.getDevtype().equals(other.getDevtype()))
            && (this.getLocaldevnum() == null ? other.getLocaldevnum() == null : this.getLocaldevnum().equals(other.getLocaldevnum()))
            && (this.getExtcause() == null ? other.getExtcause() == null : this.getExtcause().equals(other.getExtcause()))
            && (this.getMaincmnumber() == null ? other.getMaincmnumber() == null : this.getMaincmnumber().equals(other.getMaincmnumber()))
            && (this.getPartdevnum() == null ? other.getPartdevnum() == null : this.getPartdevnum().equals(other.getPartdevnum()))
            && (this.getTransferdatetime() == null ? other.getTransferdatetime() == null : this.getTransferdatetime().equals(other.getTransferdatetime()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getPartitionkey() == null) ? 0 : getPartitionkey().hashCode());
        result = prime * result + ((getStartdatetime() == null) ? 0 : getStartdatetime().hashCode());
        result = prime * result + ((getCallid() == null) ? 0 : getCallid().hashCode());
        result = prime * result + ((getGcallid() == null) ? 0 : getGcallid().hashCode());
        result = prime * result + ((getEnddatetime() == null) ? 0 : getEnddatetime().hashCode());
        result = prime * result + ((getCalltype() == null) ? 0 : getCalltype().hashCode());
        result = prime * result + ((getCallresult() == null) ? 0 : getCallresult().hashCode());
        result = prime * result + ((getVdn() == null) ? 0 : getVdn().hashCode());
        result = prime * result + ((getVdnid() == null) ? 0 : getVdnid().hashCode());
        result = prime * result + ((getInacdgrpnum() == null) ? 0 : getInacdgrpnum().hashCode());
        result = prime * result + ((getInacdgrpid() == null) ? 0 : getInacdgrpid().hashCode());
        result = prime * result + ((getOutacdgrpnum() == null) ? 0 : getOutacdgrpnum().hashCode());
        result = prime * result + ((getOutacdgrpid() == null) ? 0 : getOutacdgrpid().hashCode());
        result = prime * result + ((getOpeid() == null) ? 0 : getOpeid().hashCode());
        result = prime * result + ((getOpedevnum() == null) ? 0 : getOpedevnum().hashCode());
        result = prime * result + ((getOpename() == null) ? 0 : getOpename().hashCode());
        result = prime * result + ((getWaitspan() == null) ? 0 : getWaitspan().hashCode());
        result = prime * result + ((getTalkspan() == null) ? 0 : getTalkspan().hashCode());
        result = prime * result + ((getAni() == null) ? 0 : getAni().hashCode());
        result = prime * result + ((getDnis() == null) ? 0 : getDnis().hashCode());
        result = prime * result + ((getDnisname() == null) ? 0 : getDnisname().hashCode());
        result = prime * result + ((getDialnumber() == null) ? 0 : getDialnumber().hashCode());
        result = prime * result + ((getMonitordevnum() == null) ? 0 : getMonitordevnum().hashCode());
        result = prime * result + ((getIsqueue() == null) ? 0 : getIsqueue().hashCode());
        result = prime * result + ((getIsope() == null) ? 0 : getIsope().hashCode());
        result = prime * result + ((getPrimary() == null) ? 0 : getPrimary().hashCode());
        result = prime * result + ((getGwnumber() == null) ? 0 : getGwnumber().hashCode());
        result = prime * result + ((getCmconvnumber() == null) ? 0 : getCmconvnumber().hashCode());
        result = prime * result + ((getOpeanswerspan() == null) ? 0 : getOpeanswerspan().hashCode());
        result = prime * result + ((getAcdgrpdisttime() == null) ? 0 : getAcdgrpdisttime().hashCode());
        result = prime * result + ((getHoldtimes() == null) ? 0 : getHoldtimes().hashCode());
        result = prime * result + ((getHoldspansum() == null) ? 0 : getHoldspansum().hashCode());
        result = prime * result + ((getOpeacdgrpnum() == null) ? 0 : getOpeacdgrpnum().hashCode());
        result = prime * result + ((getOpeacdgrpid() == null) ? 0 : getOpeacdgrpid().hashCode());
        result = prime * result + ((getHelpcalltimes() == null) ? 0 : getHelpcalltimes().hashCode());
        result = prime * result + ((getEhelpcalltimes() == null) ? 0 : getEhelpcalltimes().hashCode());
        result = prime * result + ((getCallmanagenumber() == null) ? 0 : getCallmanagenumber().hashCode());
        result = prime * result + ((getMergeflg() == null) ? 0 : getMergeflg().hashCode());
        result = prime * result + ((getCause() == null) ? 0 : getCause().hashCode());
        result = prime * result + ((getDevtype() == null) ? 0 : getDevtype().hashCode());
        result = prime * result + ((getLocaldevnum() == null) ? 0 : getLocaldevnum().hashCode());
        result = prime * result + ((getExtcause() == null) ? 0 : getExtcause().hashCode());
        result = prime * result + ((getMaincmnumber() == null) ? 0 : getMaincmnumber().hashCode());
        result = prime * result + ((getPartdevnum() == null) ? 0 : getPartdevnum().hashCode());
        result = prime * result + ((getTransferdatetime() == null) ? 0 : getTransferdatetime().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", partitionkey=").append(partitionkey);
        sb.append(", startdatetime=").append(startdatetime);
        sb.append(", callid=").append(callid);
        sb.append(", gcallid=").append(gcallid);
        sb.append(", enddatetime=").append(enddatetime);
        sb.append(", calltype=").append(calltype);
        sb.append(", callresult=").append(callresult);
        sb.append(", vdn=").append(vdn);
        sb.append(", vdnid=").append(vdnid);
        sb.append(", inacdgrpnum=").append(inacdgrpnum);
        sb.append(", inacdgrpid=").append(inacdgrpid);
        sb.append(", outacdgrpnum=").append(outacdgrpnum);
        sb.append(", outacdgrpid=").append(outacdgrpid);
        sb.append(", opeid=").append(opeid);
        sb.append(", opedevnum=").append(opedevnum);
        sb.append(", opename=").append(opename);
        sb.append(", waitspan=").append(waitspan);
        sb.append(", talkspan=").append(talkspan);
        sb.append(", ani=").append(ani);
        sb.append(", dnis=").append(dnis);
        sb.append(", dnisname=").append(dnisname);
        sb.append(", dialnumber=").append(dialnumber);
        sb.append(", monitordevnum=").append(monitordevnum);
        sb.append(", isqueue=").append(isqueue);
        sb.append(", isope=").append(isope);
        sb.append(", primary=").append(primary);
        sb.append(", gwnumber=").append(gwnumber);
        sb.append(", cmconvnumber=").append(cmconvnumber);
        sb.append(", opeanswerspan=").append(opeanswerspan);
        sb.append(", acdgrpdisttime=").append(acdgrpdisttime);
        sb.append(", holdtimes=").append(holdtimes);
        sb.append(", holdspansum=").append(holdspansum);
        sb.append(", opeacdgrpnum=").append(opeacdgrpnum);
        sb.append(", opeacdgrpid=").append(opeacdgrpid);
        sb.append(", helpcalltimes=").append(helpcalltimes);
        sb.append(", ehelpcalltimes=").append(ehelpcalltimes);
        sb.append(", callmanagenumber=").append(callmanagenumber);
        sb.append(", mergeflg=").append(mergeflg);
        sb.append(", cause=").append(cause);
        sb.append(", devtype=").append(devtype);
        sb.append(", localdevnum=").append(localdevnum);
        sb.append(", extcause=").append(extcause);
        sb.append(", maincmnumber=").append(maincmnumber);
        sb.append(", partdevnum=").append(partdevnum);
        sb.append(", transferdatetime=").append(transferdatetime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}